package com.buaa.aimall.Utils;

import org.apache.commons.lang.StringUtils;

public class PrivacyUtils {

    /**
     * 隐藏姓名，根据名字长度不同应用不同的隐藏规则。
     * 如果名字是两个字，则保留第一个字并用*替换第二个字；
     * 如果名字是三个或更多字，则保留第一个和最后一个字，中间用*代替。
     */
    public static String maskName(String name) {
        if (StringUtils.isBlank(name)) {
            return "";
        }
        int length = name.length();
        if (length == 2) {
            return name.charAt(0) + "*";
        } else {
            return name.charAt(0) + "*".repeat(length - 2) + name.charAt(length - 1);
        }
    }

    /**
     * 隐藏身份证号，显示前6位和最后4位，其余用*代替。
     */
    public static String maskIdCard(String idCard) {
        if (StringUtils.isBlank(idCard)) {
            return "";
        }
        final int visibleStartLength = 6;
        final int visibleEndLength = 4;
        String maskedPart = "*".repeat(Math.max(0, idCard.length() - visibleStartLength - visibleEndLength));
        return idCard.substring(0, visibleStartLength) + maskedPart + idCard.substring(idCard.length() - visibleEndLength);
    }
}
